/**
 * 
 */

package com.tenentia.pcmps.swm.business.interfaces;

import java.util.List;

import com.tenentia.pcmps.swm.business.BusinessLogicException;
import com.tenentia.pcmps.swm.business.BusinessLogicObject;
import com.tenentia.pcmps.swm.data.beans.ApplicationUser;
import com.tenentia.pcmps.swm.data.beans.UsersGroup;

/**
 * 
 * @author tEnEntia, S.L.N.E.
 * 
 */
public interface GroupsManager extends BusinessLogicObject {

	public void delete(UsersGroup group) throws BusinessLogicException;

	public UsersGroup get(UsersGroup group) throws BusinessLogicException;
	
	public List<UsersGroup> getAvailableGroups() throws BusinessLogicException;

	public List<UsersGroup> getTableItemsByRange(Object filterParameters, Object sortParameters, Integer firstRow, Integer numberOfRows) throws BusinessLogicException;

	public Integer getTableRowCount(Object filterParameters) throws BusinessLogicException;
	
	public UsersGroup getUserGroup(ApplicationUser user) throws BusinessLogicException;

	public void save(UsersGroup group) throws BusinessLogicException;
	
	public UsersGroup setUserGroup(ApplicationUser user) throws BusinessLogicException;

	public void update(UsersGroup group) throws BusinessLogicException;

}
